#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>

long long k, m, begin;

/**
 * check函数返回是不是坏人，
 * 如果得到的是1 - k(坏人)，返回1
 * 如果得到的是k+1 - 2k(好人), 返回0
 * @param remain
 * @return
 */
int check(long long remain) {
    //result是索引，不是具体的人
	long long result = (begin + m - 1) % remain;
	if (result >= k) {
		begin = result; return 1;
	}
	else return 0;
}

/**
 * 
 * 测试链接：
 * https://www.luogu.com.cn/problem/P1145
 */
int main() {
	long long i, find = 0;
	scanf("%lld", &k);
	//m初始化为k
	m = k;	
	
	//如果没有找到符合条件的m,就继续找
	while (!find) {
		//假设找到  begin代表报数的起点
		find = 1; begin = 0;
		//开始检查，前k个是不是坏人
		for (i = 0; i < k; i++)
			if (!check(2 * k - i)) {
				//一旦进入这个if,则跳出for循环
				//执行m++，继续检查
				find = 0; break;
			}
		m++;
	}
	printf("%lld\n", --m);
	return 0;
}